﻿namespace VisualWip.Core.Interfaces
{
    public interface IViewModelFactory
    {
        void RegisterViewModel<TType, TViewModel>();
        void RegisterSettingsViewModel<TType, TSettingsViewModel>();

        TViewModel CreateViewModel<TViewModel>(object model)
            where TViewModel : class;

        object CreateViewModel(object model);

        TSettingsViewModel CreateSettingsViewModel<TSettingsViewModel>(object model)
            where TSettingsViewModel : class;

        object CreateSettingsViewModel(object model);
    }
}